home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / fax / README
Text File  |  1994-08-01  |  56KB  |  1,251 lines

  1.  
  2.                          toolbox/public/fax README
  3.  
  4.  
  5.         For generic issues, see the Frequently Asked Questions fax file 
  6.         located at ~4Dgifts/toolbox/FAQs/netfaqs/fax-faq.
  7.  
  8.  
  9.  
  10.                  intro README to a fax-modem Software Package
  11.  
  12.  
  13.  
  14.                      FlexFAX, Version 2.2.2 for IRIX 5.2
  15.                  (IRIX 4.0.5 images on sgi.com:~ftp/sgi/fax)
  16.  
  17.         ------------------------------------------------------------
  18.       Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler
  19.       Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc.
  20.  
  21.  
  22.     Two versions of this package are included in the two subdirectories:
  23.  
  24.        inst:  Version 2.2.2 SGI "inst"-able images ready to go.
  25.        src:   Version 2.2.2 full source code + documentation.
  26.  
  27.     The remainder of this file is src/README in its entirety
  28.  
  29.  
  30.  
  31.  
  32. $Header: /usr/people/sam/fax/RCS/README,v 1.91 1994/04/21 20:22:51 sam Rel $
  33.  
  34. FlexFAX, Release 2.2.2
  35. ----------------------
  36.  
  37. Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler
  38. Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc.
  39.  
  40.     Permission to use, copy, modify, distribute, and sell this software and 
  41.     its documentation for any purpose is hereby granted without fee, provided
  42.     that (i) the above copyright notices and this permission notice appear in
  43.     all copies of the software and related documentation, and (ii) the names of
  44.     Sam Leffler and Silicon Graphics may not be used in any advertising or
  45.     publicity relating to the software without the specific, prior written
  46.     permission of Sam Leffler and Silicon Graphics.
  47.  
  48.     THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  49.     EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  50.     WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  51.  
  52.     IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  53.     ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  54.     OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  55.     WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  56.     LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  57.     OF THIS SOFTWARE.
  58.  
  59.  
  60. This note has the following sections:
  61.  
  62.     Overview
  63.     How to tell which version you have
  64.     Modems
  65.     Class 1 Modem Support (Caveat Emptor)
  66.     Class 2.0 Modem Support
  67.     About the Binary Distribution
  68.     About the Source Code
  69.     Before Building the System From Source Code
  70.     Building the System From Source Code
  71.     Building Ghostscript 2.6.x with the TIFF Driver
  72.     Installation (source distribution)
  73.     Installation (binary distribution)
  74.     Server Setup and Configuration
  75.     Server Operation
  76.     Adaptive-answering Strategies
  77.     Non-adaptive-answering Strategies
  78.     Troubleshooting
  79.     Mail to Fax Gateway
  80.     Client Setup and Operation
  81.     Contributed Software
  82.     Acknowledgements
  83.     FlexFAX Mailing List and Other Final Words (where to send bugs)
  84.  
  85.     Use and Copyright
  86.     InterViews Information (from Mark Linton: linton@sgi.com)
  87.     TIFF Information (from Sam Leffler: sam@sgi.com)
  88.     TIFF Mailing List
  89.     Ghostscript Information
  90.  
  91. If this is your first encounter with this software you should
  92. read this note from ``top to bottom'', taking particular care
  93. to look at section titled "Before Building The System From
  94. Source Code" (assuming that you are working with source code).
  95.  
  96.  
  97.  
  98. Overview
  99. --------
  100. FlexFAX is a facsimile system for UNIX systems.  It supports:
  101.  
  102. o sending facsimile
  103. o receiving facsimile
  104. o polled retrieval of facsimile
  105. o transparent shared data use of the modem
  106.  
  107. Facsimile can be any size (e.g. A4, B4), either 98 or 196 lpi, and
  108. transmitted/received as either 1D-encoded or 2D-encoded facsimile data
  109. (2D-encoded data is frequently more compact and hence takes a shorter
  110. time to communicate).
  111.  
  112. Outgoing documents can be any format; the sendfax program uses a
  113. rule-based definition file similar to the System V /etc/magic file 
  114. to deduce document types and to decide how to convert each document
  115. to a form suitable for transmission (either PostScript or TIFF/F).
  116. Automatic cover page generation is supported and users can easily
  117. tailor cover pages to their environment.  A simple text-based
  118. phonebook database is supported by sendfax.  Information is also
  119. provided on how to trivially setup an email to fax gateway service.
  120.  
  121. Incoming facsimile are stored in a receiving area as TIFF/F (read
  122. ``TIFF Class F'') files and may be automatically delivered by mail
  123. and/or printed.  A fax server status program, faxstat, can be used to
  124. monitor the send and receive queues, as well as the state of facsimile
  125. servers.
  126.  
  127. Fax modems may be shared with outgoing data communication applications
  128. that honor the "UUCP locking protocol".  These applications typically
  129. include: cu, tip, kermit, uucp, slip, and ppp.  The system can also be
  130. configured so that incoming data calls cause the system to invoke the
  131. standard system getty program.
  132.  
  133. The software is structured around a client-server architecture.  One
  134. facsimile server process exists for each fax modem on a network.
  135. Clients may send facsimile from any machine that can communicate with
  136. the machine(s) on which the server(s) reside.  Client software is
  137. designed to be lightweight and easy to port; imaging can be offloaded
  138. to the server or done on the client.  (Imaging is, however, typically
  139. done on the server because it simplifies administration.)  Multiple
  140. modems may be located on a single machine.  An access control mechanism
  141. is included to control which users on which machines may submit
  142. documents for transmission.
  143.  
  144. The server requires a PostScript to facsimile imaging utility for
  145. useful operation (otherwise, only pre-imaged facsimile may be
  146. transmitted.)  A Display PostScript-based imager is provided for IRIX
  147. 4.x- and 5.x-based systems.  For other systems, a Ghostscript-based
  148. version can be built from the GNU sources.
  149.  
  150.  
  151. How to tell which version you have
  152. ----------------------------------
  153. If you have source code, the precise version is given in the file named
  154. VERSION that is located at the top of the source tree and the alpha
  155. number is given in the file dist/flexfax.alpha.  If you have a binary
  156. installation for a Silicon Graphics machine, the version can be printed
  157. out with the versions(1) command.  If you have need to refer to this
  158. specific software, you should identify it as:
  159.  
  160.     FlexFAX v<version>beta<n>
  161.  
  162. where <version> is whatever you get from "cat VERSION" and <n> is
  163. what you get from "cat dist/flexfax.alpha"; or, on an SGI machine,
  164. <version> and <n> are displayed in "versions -n flexfax.sw"; for
  165. example:
  166.  
  167.    Name                 Version   Description
  168.  
  169. I  flexfax             732914093  FlexFAX Facsimile Software, Version 2.1.0
  170. I  flexfax.sw          100600074  FlexFAX Software
  171. I  flexfax.sw.client   100600074  FlexFAX Client Software
  172. I  flexfax.sw.server   100600074  FlexFAX Server Software
  173.  
  174. <version> = 2.1.0 and <n> = 074 (the right three digits in the Version
  175. column), so this is FlexFAX v2.1.0beta074.
  176.  
  177.  
  178. Modems
  179. ------
  180. Note that you need a fax modem to use this software.  Fax modems are
  181. not the same as data modems though most contemporary fax modems also
  182. support data communication.  Numerous modems are known to work with
  183. this software though some work better than others.
  184.  
  185. Manufacturer    Model            Notes    Class     Firmware Rev
  186. ------------    -----            -----    -----     ------------
  187. Abaton        InterFax 24/96                  unavailable
  188. AT&T Paradyne    DataPort 14.4         +    1,2     >= C01.22.00
  189. Boca Research    M1440E                2     >= V1.270
  190. Boca Research    M1440E/RC32ACL         @    2     V1.000
  191. CPI        ViVa 14.4/FAX            2     V1.10 172-502402-013
  192. Dallas Fax    <something>            2     not recommended
  193. Digicom        Scout+             +    1     >= 2A19/2931
  194. Dynalink (?)    Dynalink 1414VE            2     CBS-03
  195. Everex        EverFax 24/96D            2     >= 901231
  196. Hayes        Optima 144               1     unknown
  197. Hayes        Optima 2400+Fax96           2     >= TR00-J260-001 XXX
  198. Intel        SatisFAXtion 400e        1     >= U20-28F001BX-5.00
  199. Logicode    Quicktel Xeba 14.4        2     V0.500 TR14-Jxxx-001
  200. Multi-Tech    MT1432BA, MT224BA     *,+    2     >= 0307 I
  201. Multi-Tech    MT1432BG            2     0109A
  202. Nuvo        Voyager 96424PFX        1     AF-C2500-E0
  203. OLITEC FRANCE    OLICOM POCHE FAX MODEM 2400    2     TR24-J???-001 007
  204. PPI        PM14400FXMT, PM14400FXSA    2     >= 2.17
  205. Supra        SupraFAX v.32bis        1,2     >= V1.200-C
  206. Supra        SupraFAX v.32bis/RC32ACL @    2     >= V1.000
  207. Telebit        T3000, WorldBlazer, QBlazer    2     >= LA7.01
  208. Twincom        144/DF                2     >= V1.200
  209. USRobotics    Courier                1,2.0     >=Sup4.1/DSP11
  210. USRobotics    Sportster            1     >=Sup4.1/DSP10
  211. Zoom        VFX                1,2     V2.00
  212. Zero One Net.    ZyXEL U1496E, U1496E+, U1496S    2     >= 5.01
  213.  
  214. Notes:
  215.  
  216. * There are apparently many variants of the MT1432BA, the following
  217.   models are known to work: MT1432BA, MT1432BA/A, MT1432MK, MT1432PCS.
  218. @ /RC32ACL refers to second-generation products made with the Rockwell
  219.   RC32ACL part and different firmware.
  220. + Modem is recommended for use with this software.
  221.  
  222. Class 1 means the modem supports the TIA/EIA-578 "Class 1" specification.
  223. Class 2 means the modem supports the TIA/EIA-592 draft SP-2388-A of
  224.     August 30, 1991.
  225. Class 2.0 means the modem supports the TIA/EIA-592 "Class 2.0" specification.
  226. The Abaton modem uses a proprietary interface that is
  227.     neither Class 1 or Class 2.
  228. SEE THE SECTION "Class 1 Support" FOR IMPORTANT INFO ON CLASS 1 SUPPORT
  229.  
  230. The software has been tested with the modems and firmware that are
  231. listed.  You may find that other modems that claim to conform to the
  232. Class 1, Class 2, and Class 2.0 specifications also work (but I make no
  233. promises).  Earlier revisions of firmware for the above modems may
  234. work, but once again no promises.  Consult the file MODEMS for known
  235. bugs and gotchas in the above modems.  Wherever possible the FlexFAX
  236. software works around known modem problems or restricts modem usage in
  237. order to provide a functioning system.  Beware however that several
  238. Class 2 modems do not correctly implement the +FDIS command as
  239. specified in SP-2388-A.  As a result they are not recommended for use
  240. with this software because their firmware limitations make it possible
  241. to send only low-resolution, 1D-encoded, facsimile data.
  242.  
  243. Firmware for ZyXEL modems can be retrieved by mail-server request (more
  244. information can be found in the doc directory).
  245.  
  246.  
  247. Class 1 Modem Support (Caveat Emptor)
  248. -------------------------------------
  249. The system includes a driver for modems that support the EIA-578 "Class
  250. 1" programming interface.  These modems export a very low level interface
  251. that requires that the CCITT Recommendation T.30 facsimile communication
  252. protocol be implemented almost entirely in the host.  Robust support for
  253. this protocol places two requirements on the host system:
  254.  
  255. o low latency for serial line input
  256. o near realtime response
  257.  
  258. In a UNIX environment both these requirements can be problematic.  In
  259. particular, many UNIX systems increase the latency for data received on
  260. a serial port in order to reduce system overhead.  That is, input data
  261. are typically held in a low level device driver for some period of time
  262. before they are passed to the user so that bursts of input data can be
  263. delivered to the user together.  This behaviour is known to occur under
  264. the Silicon Graphics IRIX and SunOS 4.1.x operating systems; it may
  265. also occur under other systems.  It is important for the proper
  266. operation of the Class 1 driver that input data be delivered to the
  267. facsimile server as quickly as possible.  This may require making a
  268. non-standard call of some sort to the operating system.  For SGI
  269. systems this call is automatically done.  For SunOS systems it appears
  270. that the only way to minimize the input latency is to create a stream
  271. i/o module that accesses an internal interface (see the comments in the
  272. routine setInputBuffering in faxd/FaxServer.c++ and the directory
  273. port/sun/zsundev that contains source for a kernel streams module).
  274.  
  275. The response time requirements are important for insuring that T.30
  276. protocol messages are received in a timely fashion.  On a loaded
  277. system the protocol process may be preempted by other activities and
  278. not be run fast enough to satisfy the protocol timing requirements.
  279. This can usually be guarded against by assigning the facsimile process
  280. a high scheduling priority.  Unfortunately most UNIX systems do not
  281. provide support for such facilities and so even if it is possible to
  282. receive serial line input with the minimum of delay, protocol timing
  283. requirements may not be met because of delays in scheduling the
  284. execution of the fax server process.  For this reason the facsimile
  285. server process attempts to raise its scheduling priority while it is
  286. actively sending or receiving facsimile.  At other times, such as when
  287. it is doing queue management operations, it runs at a normal priority.
  288. On Silicon Graphics systems the ``high priority'' is a nondegrading
  289. scheduling priority that is above the priorities of the normal system
  290. processes.  On other systems the server currently always runs at the
  291. same (normal) scheduling priority.  For more details consult the
  292. setProcessPriority routine in faxd/FaxServer.c++.
  293.  
  294. In summary, if you want to use a Class 1 modem with this software and
  295. your system does not provide support for low latency serial line input
  296. you are likely to have troubles.  If your system does not provide a
  297. mechanism for raising process scheduling priority (note that this is
  298. not the same as the UNIX ``nice'' parameter), then you may see problems
  299. when the server is under load.  Exactly how much load will cause trouble
  300. is dependent on the system configuration and processing power.
  301.  
  302.  
  303. Class 2.0 Modem Support
  304. -----------------------
  305. There is a driver for Class 2.0 modems that was developed using a USR
  306. Courier modem.  Since this standard is very young (the Courier is the
  307. first modem to be available with Class 2.0 support) don't be surprised
  308. if there are firmware problems and/or incompatibilities between the
  309. driver and modems with Class 2.0 firmware.
  310.  
  311.  
  312. About the Binary Distribution
  313. -----------------------------
  314. The executables in the binary version of this distribution are from a
  315. Silicon Graphics IRIX 4.0.5H system (compiled with the 2.1 release of
  316. the AT&T C++ compiler and Version 3.10 of the ANSI C compiler).  These
  317. binaries run on any SGI 4D processor running IRIX 4.0.x.  These
  318. binaries do not function properly on IRIX 5.x systems because of
  319. workarounds for IRIX kernel bugs that are enabled only at compile
  320. time.  For IRIX 5.x systems you will need to obtain the source code and
  321. build working binaries.  Binary installable versions of this software
  322. will be available for IRIX 5.2 in the near future (once the software is
  323. more widely available to customers).  The PostScript imaging engine
  324. requires that you have the Display PostScript execution environment
  325. (dps_eoe) installed on the machine where the fax server runs.  Client
  326. machines do not need dps_eoe as all PostScript imaging is done at the
  327. server.  It is also possible to setup the binary executables to use a
  328. Ghostscript-based imager instead of the Display PostScript-based one,
  329. but that requires the Ghostscript driver included only in the source
  330. distribution.
  331.  
  332.  
  333. About the Source Code
  334. ---------------------
  335. All the source code in this system is provided except the small bit
  336. of code used to build the Display PostScript-based imager (this code
  337. is useless unless you have a developers agreement with Adobe for
  338. Display PostScript).
  339.  
  340. The system is written almost entirely in C++.  I use the AT&T 2.1 and
  341. 3.0 compilers, as supported by SGI.  GNU gcc 2.4.5 and later have been
  342. successfully used to build this software.  gcc 2.5.8 and libg++ 2.5.3
  343. are the current recommended versions of the GNU tools to use.
  344.  
  345. The system assumes a POSIX-style system interface and support for the
  346. select system call.  If your system does not support tcgetattr,
  347. tcsetattr, etc., then you will need to write some emulation routines.
  348. If your system does not support select, then you will have a lot of
  349. work to do.
  350.  
  351. The Class 1 modem driver requires sub-second timer facilities and a
  352. minimum latency interface to serial input.  The server uses the
  353. BSD-style setitimer calls for the timer support and system-specific
  354. calls to enable low latency input from serial ports.  If your system
  355. does not support the BSD timer calls, then the server will fall back to
  356. using the alarm system call that only has 1 second granularity (and the
  357. driver is unlikely to work reliably).  If your system buffers serial
  358. input and does not provide a mechanism for defeating this, then the
  359. Class 1 driver will likely not work well.  See the section above for
  360. more specifics about the Class 1 support.
  361.  
  362. There is getty-related support in the fax server process that must be
  363. configured according to your platform.  When the fax server accepts an
  364. incoming data connection it configures the port and execs the system
  365. getty program.  There are two interfaces: System V-style and BSD-style.
  366. Only one of the two classes may be included in the server; the one that
  367. is appropriate to your system should be specified in the SYSGETTY
  368. definition in the defs files.  If your system is one of those supported
  369. by the configure script, this is automatically done when the software
  370. is configured for compilation.
  371.  
  372. The system depends on the InterViews software distribution and on the
  373. public domain TIFF library that I also distribute separately.  Only the
  374. *parts* of each system that are used by the fax software are included
  375. in this source code.  Both distributions in their entirety are freely
  376. available by public FTP on the Internet.  Information on obtaining each
  377. is included below.
  378.  
  379.  
  380. Before Building the System From Source Code
  381. -------------------------------------------
  382. Before you build the software you *MAY* need to obtain certain other
  383. software distributions.  All the software packages described here
  384. are available by public ftp from a variety of Internet hosts.
  385.  
  386. o gcc
  387.  
  388. You need a C++ compiler to build this system.  gcc version 2.4.5 has
  389. been successfully used to build this code on several systems.  Earlier
  390. versions of gcc may work, but I make no promises.  Note that early
  391. versions of gcc require that you have the bison parser generator
  392. installed on your machine.  If you do not have bison and you need gcc,
  393. do not forget to retrieve both at the same time!  When installing gcc
  394. beware of the make install-fixincludes step.  On some systems and/or
  395. with some versions of gcc, this software may not compile properly if
  396. the include files are wrong (function prototypes that would normally
  397. cause casts to be done may be missing).
  398.  
  399. Finally, note port/generic/GCC-PATCH if you have an old version of
  400. gcc.  This patch reduces the memory used to compile the large state
  401. tables that are part of the file libtiff/tif_fax3.c.  Without this
  402. patch you may not be able to compile tif_fax3.c on machines with
  403. limited memory, or compiling the file may take a very long time (30
  404. minutes or more).
  405.  
  406. o C++ runtime libraries
  407.  
  408. The AT&T compiler product includes everything that you need in the
  409. libC.a runtime library.  When using GNU gcc you will also need the
  410. libg++ distribution.  Testing was done with libg++2.3, but newer
  411. versions also work (and are usually required with newer versions of
  412. gcc).
  413.  
  414. o ghostscript
  415.  
  416. If you are not on an SGI machine, then you will need the Ghostscript
  417. PostScript interpreter software to build a PostScript imaging engine
  418. for use by the facsimile server.  Version 2.6.1 is known work, though
  419. you should be certain to apply patches 1-4.  If you do not apply the
  420. patches you will run into a bug in the clipping code that is tickled
  421. by the faxcover program.
  422.  
  423. o gmake
  424.  
  425. The make files are extensive and work untouched with the system make
  426. under IRIX and SunOS.  If your make does not understand them, then you
  427. should be able to use the GNU make (gmake) instead.  If you decide to
  428. use gmake, be sure to get version 3.63 or newer; otherwise you will
  429. encounter many problems (especially with the incdepend target).
  430.  
  431. o gawk
  432.  
  433. Several of the shell scripts included in this software make use of
  434. awk.  These uses are reasonably simple, but may not work with older
  435. versions of awk.  If you encounter problems, in particular with the
  436. notify or rts (Return To Sender) shell scripts, try the GNU awk.
  437.  
  438. o sed
  439.  
  440. Several of the shell scripts included in this software make use of
  441. sed.  Certain systems are known to have versions of sed that do not
  442. handle the shell scripts (e.g. sed on BSDI 1.0 dumps core on
  443. expressions in the configure shell script).  If you encounter problems,
  444. the latest GNU sed should be substituted.
  445.  
  446. o /bin/test
  447.  
  448. The software configuration shell script (configure) and the modem
  449. configuration shell script (etc/faxaddmodem.sh) make heavy use of
  450. the test program.  On some systems the /bin/test program does not
  451. support options such as -c (test if a file is a character special
  452. device).  Source for a contemporary, public domain, test program
  453. is available by public ftp from ftp.uu.net.
  454.  
  455. o Adobe Font Metric (AFM) files
  456.  
  457. The textfmt and faxmail utilities use Adobe Font Metric files in doing
  458. page layout.  Ideally the font metrics should reflect the fonts that
  459. are used to image the PostScript.  However, if your PostScript
  460. interpreter does not include font metric files you can retrieve a set
  461. separately from this distribution: the archive afm.tar.Z on sgi.com (in
  462. the same directory that this software is located) contains font metric
  463. files for the most common fonts.
  464.  
  465. o ps2fax binary for IRIX systems
  466.  
  467. The Display PostScript-based imager for SGI systems is included in the
  468. binary inst'able images provided on sgi.com.  If you choose to work
  469. from the source code on an SGI system you will want a copy of the ps2fax
  470. program: it is available separately on sgi.com as the archive dps.tar.Z
  471. in the same directory that this software is located.  Note that this
  472. is a binary executable for IRIX 4.0.X systems and requires that you
  473. have the dps_eoe software package installed.
  474.  
  475.  
  476. Building the System From Source Code
  477. ------------------------------------
  478. To build the software you first need to run the configure shell script
  479. in this directory.  At present the following configurations are known:
  480.  
  481. aix32     AIX v3.2.3 extended-v3.2.5 on RISC System/6000
  482. bsdi     BSD/386 1.1 w/ its included GNU gcc 2.5.8
  483. 4.4bsd     4.4BSD w/ GNU gcc 2.4.5 (incomplete)
  484. freebsd     FreeBSD on an Intel 486 w/ GNU gcc
  485. hpux     HP-UX 9.x on an HP 9000/700 (incomplete)
  486. isc     ISC4.0 on a 386 with gcc 2.5.8
  487. linux     Linux 99p9 on an Intel 386 using gcc 2.4.5
  488. sco     SCO 3.2v4 (ODT 3) (incomplete)
  489. sgi     IRIX 4.x and 5.x systems w/ AT&T C++ compiler
  490. solaris2 Solaris 2.x on a Sun4 with GNU gcc 2.5.8
  491. sun     Sun3/Sun4 w/ SunOS 4.1.X and GNU gcc 2.5.8
  492. svr4     System V Release 4 on an Intel x86 w/ GNU gcc 2.5.8
  493. 386bsd     386bsd 0.1 on an Intel 486 w/ GNU gcc 2.4.5
  494. ultrix     Ultrix 4.2A w/ GNU gcc 2.5.8 (see port/ultrix/README)
  495.  
  496. Systems that are marked (incomplete) compile properly and can be used
  497. to send and receive facsimile, but may have known problems or may be
  498. lacking some utilities such as the faxaddmodem installation script.
  499. Systems that are marked (not yet ready) are in preparation, but are not
  500. yet polished for distribution--if you take the supplied and complete
  501. the work, please send the appropriate patches back so that they can be
  502. incorporated into future distributions.
  503.  
  504. It is also be possible to use the GNU tools on the SGI machine and
  505. the AT&T compiler on the other systems.  To configure and build the
  506. software do:
  507.  
  508. % configure [target]    # e.g. configure sgi
  509.  
  510. where target is one of the above system types and, optionally, a
  511. compiler: sgi, sgi-gcc, sgi-cc.  If no target is given, configure will
  512. try to deduce your system using uname(1).  The software is setup with
  513. several important definitions that are tailored at configuration time
  514. according to the host and local conventions.  For example,
  515.  
  516. % configure
  517. Gosh, aren't you lucky to have a IRIX system!
  518. Setting up make-related files.
  519. Updating configuration for "sgi" & "cc".
  520. Installing port/sgi/Makefile.flexfax as Makefile.
  521. Installing port/sgi/defs.cc as defs.
  522. Installing libtiff/Makefile.sgi as libtiff/Makefile.
  523. Creating port.h with necessary definitions.
  524. ... enable IRIX 5.x workarounds for FIFO and select bugs
  525. ... add function prototype for sigvec
  526. ... add function prototype for seteuid
  527. ... add function prototype for setegid
  528. ... configure use of fchown
  529. ... configure use of fchmod
  530.  
  531. FlexFAX configuration parameters are:
  532.  
  533. Directory for applications:     /usr/local/bin
  534. Directory for lib data files:   /usr/local/lib/fax
  535. Directory for lib executables:  /usr/local/lib/fax
  536. Directory for servers:          /usr/etc
  537. Directory for manual pages:     /usr/catman/local
  538. Directory for documentation:    /usr/local/doc/flexfax
  539. Directory for spooling:         /usr/spool/fax
  540. Type of uucp lock files:        ascii
  541. Directory for uucp lock files:  /usr/spool/locks
  542. Mode for uucp lock files:       0444
  543. PostScript imager packaage:     dps
  544. PostScript imager program:      /usr/local/bin/ps2fax
  545. Default page size:              North American Letter
  546. Default vertical res (lpi):     98
  547. Directory for font metrics:     /usr/lib/DPS/AFM
  548. Location of sendmail program:   /usr/lib/sendmail
  549.  
  550. Are these ok [yes]? 
  551.  
  552. Done.
  553.  
  554. If you want these to be other than the default settings, then you
  555. should follow the prompts given by the configure script.  Once things
  556. are to your liking, do:
  557.  
  558.     % make
  559.  
  560. On unsupported configurations, you will want to examine the files in
  561. the directory port/<machine> (e.g. port/sun for a Sun) and also decide
  562. on a scheme for doing the PostScript imaging.  If no port/<machine>
  563. directory is present for your machine, then the software has not been
  564. ported to your platform and you will need to do some work.
  565.  
  566. In general, the software is designed such that the following should
  567. be ``make-able'' in each directory:
  568.  
  569. make [all]        build stuff
  570. make depend        build dependency information
  571. make install        build&install stuff
  572. make clean        remove .o files and cruft, but not executables
  573. make clobber        remove everything that can be recreated
  574.  
  575.  
  576. Building Ghostscript 2.6.x with the TIFF Driver
  577. -----------------------------------------------
  578. If you are not using the DPS imager on an SGI machine, then you need to
  579. build a version of Ghostscript that includes the tiffg3 driver provided
  580. with Ghostscript.  (Actually, you may find that gs/gdevtiff.c is a newer
  581. version of this driver.  If so, you should be able to just replace the
  582. distributed gdevtiff.c with the newer one in the gs directory.)
  583.  
  584. To setup Ghostscript you need to create a Makefile (follow the
  585. Ghostscript documentation), add "tiffg3.dev" to the list of configured
  586. devices, and then build a new binary that includes the driver.  Don't
  587. forget to install Ghostscript and it's associated materials.  Beware
  588. that on machines with dynamic shared libraries (e.g. SunOS), if you
  589. link ghostscript with the X11 device driver and use shared X11
  590. libraries that are not in a standard location, then you may need to
  591. augment the util/ps2fax.gs.sh script with something of the form:
  592.  
  593. LD_LIBRARY_PATH=/usr/local/R5/lib:/usr/openwin/lib
  594. export LD_LIBRARY_PATH
  595.  
  596.  
  597. Installation (source distribution)
  598. ----------------------------------
  599. The source distribution comes in a compressed tar file.  To extract the
  600. software do something like:
  601.  
  602.     % mkdir fax; cd fax
  603.     % zcat <somewhere>/v2.2.src.tar.Z | tar xf -
  604.  
  605. (uncompress and extract individual files in current directory).  To
  606. build and install executables from the sources look first for any file
  607. port/<target>/README that has target-specific information (e.g.
  608. port/sun/README has information about a patch to apply to GNU gcc).
  609. Then, do the following:
  610.  
  611.     % ./configure <target>        # see above
  612.     % make
  613.     % su
  614.     # make install
  615.  
  616. (of course if your system is not directly supported, you will have more
  617. work than this to do.)
  618.  
  619. Once you've installed the software, see the "Server Setup and
  620. Configuration" section below.
  621.  
  622.  
  623. Installation (binary distribution)
  624. ----------------------------------
  625. The binary distribution comes as a tar file that contains images for
  626. use with the standard Silicon Graphics installation program inst(1).
  627. To unpack the inst images do something like:
  628.  
  629.     % mkdir dist; cd dist
  630.     % tar xf <somewhere>/v2.2.inst.tar
  631.  
  632. Next, run inst to install the appropriate pieces that you want.  The
  633. key documentation from the source distribution is included in the
  634. subsystem flexfax.man.readme.  When this subsystem is installed the
  635. README file and other useful pieces of information are placed in the
  636. directory /usr/local/doc/flexfax.  Otherwise the software is broken
  637. into two areas: flexfax.client.* for software needed on client machines,
  638. and flexfax.server.* for software needed on a machine where a fax
  639. modem is located.  To unpack and install the client portion:
  640.  
  641.     % mkdir dist; cd dist
  642.     % tar xf ../v2.2.inst.tar
  643.     % cd ..; inst -f dist/flexfax
  644.     ...
  645.     inst> go
  646.  
  647. (Note, the dist subdirectory is because some versions of inst fail if
  648. the files are in the current directory.)  Note that server binaries are
  649. not installed by default, so to get them also you need to do:
  650.  
  651.     % inst -f dist/flexfax
  652.     ...
  653.     inst> install flexfax.*.server
  654.     inst> go
  655.  
  656. Remember that to install a server on a Silicon Graphics machine, you
  657. need to have already installed the Display PostScript execution
  658. environment product (dps_eoe).  Otherwise, the fax server will not be
  659. able to convert PostScript to facsimile for transmission.
  660.  
  661. Once you've installed the software, see the "Server Setup and
  662. Configuration" section below.
  663.  
  664. Server Setup and Configuration
  665. ------------------------------
  666. With the executables installed, prepare the software for use:
  667.  
  668. First.  Make sure that your modem works.  I can not say this enough.
  669. If you can not use cu, tip, uucp, or whatever with your modem, do not
  670. try to configure it for use with the facsimile software.  This means in
  671. particular that you should verify that you have a working cable between
  672. your host and modem and that this cable is suitable for use.  That is,
  673. that the cable has the relevant signals for doing hardware flow control
  674. if that is necessary and that it passes the DCD and DTR signals
  675. appropriately.  On SGI Indigo systems you CAN NOT USE A MACINTOSH CABLE
  676. TO CONNECT YOUR MODEM.  Once again, repeat after me, YOU CAN NOT USE A
  677. MACINTOSH CABLE TO CONNECT YOUR MODEM TO AN SGI INDIGO.  It may look
  678. like it works, but the moment that you try to use hardware flow control
  679. (i.e. RTS/CTS) the data will be garbled and you will encounter
  680. problems.  On an SGI system, consult the serial(7) manual page for an
  681. explanation of how to wire up modem cables.  Note also that for SGI
  682. systems the tty port name selected for a modem must reflect whether
  683. hardware or software (XON/XOFF) flow control is to be used--ttyf*
  684. devices use RTS/CTS flow control and ttym* devices use XON/XOFF flow
  685. control.  The rules to use for selecting which flow control method
  686. are:
  687.  
  688. o if you have a Class 1 modem, then you can use either hardware or
  689.   software flow control, but beware of using hardware flow control
  690.   as the Class 1 specification only requires vendors to support
  691.   software flow control (and most of the Class 1 modems tried so far
  692.   do not support hardware flow control)
  693. o if you have a Class 2 modem, then you can use either hardware or
  694.   software flow control, but if you are going to communicate with the
  695.   modem faster than 9600 baud then you should probably use hardware
  696.   flow control
  697. o if you have an Abaton 24/96 modem, then you must use software flow
  698.   control (the driver does not support hardware flow control)
  699.  
  700. On Suns do not use RTS/CTS flow control with the on-board serial ports
  701. built around the Zilog ZS8530 chip unless you have applied patch
  702. 100513-04 to your system (see port/sun/README for more information).
  703. Also beware of port locking mechanisms that use pairs of minor devices
  704. to interlock access to the same tty port--there is no direct support in
  705. the system for this because this scheme requires that a modem
  706. auto-answer incoming calls (something that does not work well with many
  707. fax modems)--most folks use /dev/cu* for communicating with modems
  708. that are controlled in this manner.
  709.  
  710. There are gotchas that you can expect to run into on most any system
  711. when trying to interface to the system's serial port handling.  Consult
  712. the MODEMS file, the manual pages and, where applicable, the README
  713. files in the port/<machine> directory for your system.
  714.  
  715. With the executables installed and your modem happily connected to the
  716. host with a proper cable, you can add modems with the faxaddmodem shell
  717. script.  This is an interactive script that walks you through the
  718. configuration and installation of a new or existing modem.  Note that
  719. even if you have a previous version of this software installed you
  720. should run the faxaddmodem script to update the configuration
  721. information for your modems.  Below is a sample session.  Typed input
  722. appears to the right of a "?" or "#" prompt; all other material is
  723. printed by faxaddmodem.  Note that if your modem is configured to
  724. communicate to the host at fixed baud rate, then you should use the -s
  725. option--consult the faxaddmodem manual page for details.
  726.  
  727.     # faxaddmodem
  728.     Verifying your system is setup properly for fax service...
  729.  
  730.     You do not appear to have a fax user in the password file.
  731.     The fax software needs this to work properly, add it [yes]?
  732.     Added user "fax" to /etc/passwd.
  733.  
  734.     Adding fax user to "/etc/passwd.sgi".
  735.  
  736.     There does not appear to be an entry for the fax service either in
  737.     the yellow pages database or in the /etc/services file;
  738.     should an entry be added to /etc/services [yes]?
  739.  
  740.     There is no entry for the fax service in "/usr/etc/inetd.conf";
  741.     should one be added [yes]?
  742.     Poking inetd so that it re-reads the configuration file.
  743.  
  744.     There does not appear to be an entry for the FaxMaster either in
  745.     the yellow pages database or in the /usr/lib/aliases file;
  746.     should an entry be added to /usr/lib/aliases [yes]?
  747.     Users to receive fax-related mail [sam]? 
  748.     Rebuilding /usr/lib/aliases database.
  749.     31 aliases, longest 75 bytes, 701 bytes total
  750.  
  751.     Done verifying system setup.
  752.  
  753.     Serial port that modem is connected to []? ttyf2
  754.  
  755.     Ok, time to setup a configuration file for the modem.  The manual
  756.     page config(4F) may be useful during this process.  Also be aware
  757.     that at any time you can safely interrupt this procedure.
  758.  
  759.     No existing configuration, let's do this from scratch.
  760.  
  761.     Phone number of fax modem []? +1.415.965.7824
  762.     Area code []? 415
  763.     Country code [1]? 
  764.     Long distance dialing prefix [1]?
  765.     International dialing prefix [011]?
  766.     Tracing during normal server operation [1]?
  767.     Tracing during send and receive sessions [11]?
  768.     Protection mode for received facsimile [0600]?
  769.     Rings to wait before answering [1]?
  770.     Modem speaker volume [off]?
  771.  
  772.     The server configuration parameters are:
  773.  
  774.     FAXNumber:              +1.415.965.7824
  775.     AreaCode                415
  776.     CountryCode             1
  777.     LongDistancePrefix:     1
  778.     InternationalPrefix:    011
  779.     ServerTracing:          1
  780.     SessionTracing:         11
  781.     RecvFileMode:           0600
  782.     RingsBeforeAnswer:      1
  783.     SpeakerVolume:          off
  784.  
  785.     Are these ok [yes]? n
  786.     Phone number of fax modem [+1.415.965.7824]?
  787.     Area code [415]?
  788.     Country code [1]?
  789.     Long distance dialing prefix [1]? 
  790.     International dialing prefix [011]? 
  791.     Tracing during normal server operation [1]? 
  792.     Tracing during send and receive sessions [11]? 3
  793.     Protection mode for received facsimile [0600]?
  794.     Rings to wait before answering [1]?
  795.     Modem speaker volume [off]?
  796.  
  797.     The server configuration parameters are:
  798.  
  799.     FAXNumber:              +1.415.965.7824
  800.     AreaCode                415
  801.     CountryCode             1
  802.     LongDistancePrefix:     1
  803.     InternationalPrefix:    011
  804.     ServerTracing:          1
  805.     SessionTracing:         3
  806.     RecvFileMode:           0600
  807.     RingsBeforeAnswer:      1
  808.     SpeakerVolume:          off
  809.  
  810.     Are these ok [yes]?
  811.  
  812.     Now we are going to probe the tty port to figure out the type
  813.     of modem that is attached.  This takes a few seconds, so be patient.
  814.     Note that if you do not have the modem cabled to the port, or the
  815.     modem is turned off, this may hang (just go and cable up the modem
  816.     or turn it on, or whatever).
  817.  
  818.     Hmm, this looks like a Class 2 modem.
  819.     Modem manufacturer is "ZyXEL".
  820.     Modem model is "U1496E  V 5.02 M".
  821.  
  822.     Using prototype ZyXEL configuration file...
  823.     Creating new configuration file "/usr/spool/fax/etc/config.ttyf2".
  824.     Creating "/usr/spool/fax/FIFO.ttyf2" in the spooling directory.
  825.     Done setting up the modem configuration.
  826.  
  827.     Startup a facsimile server for this modem [yes]
  828.     /usr/etc/faxd -m /dev/ttyf2&
  829.     # 
  830.  
  831. That's all there is to it (or at least all there *should* be to it)!
  832. You can also run faxaddmodem at a later time if you want to reconfigure
  833. your modem.
  834.  
  835. Beware that when the fax server process runs it normally keeps the
  836. modem in a state suitable for sending and receiving facsimile.  This
  837. may have implications for data communication programs such as tip, cu,
  838. and uucp.  For example, if a Class 2 modem is being used, it may be
  839. necessary to force the modem into Class 0 (for data communication) when
  840. placing a call--e.g AT+FCLASS=0DT<phone number>.  Alternatively, you
  841. can fiddle with the configuration parameters and keep the modem setup
  842. for data use when the server is not actively using the modem.
  843.  
  844.  
  845. Server Operation
  846. ----------------
  847. In normal operation configured facsimile servers should be started when
  848. the system is booted and stay around so long as the system is running.
  849. On SGI systems the normal installation process sets up the appropriate
  850. configuration information for servers to be started up by init.  On
  851. other systems you will need to arrange for this yourself (typically by
  852. editing /etc/rc.local or similar).  If you need to start a server by
  853. hand, consult the faxd(1M) manual page and the shell script etc/faxd
  854. that is used on SGI systems.
  855.  
  856. Incoming facsimile are placed in the recvq subdirectory of the spooling
  857. area and probably will need to be cleaned up periodically.  Likewise
  858. there is logging information in the log subdirectory and accounting
  859. information in the etc subdirectory of the spooling area that may need
  860. some attention.  The util/faxcron.sh script is designed to handle the
  861. periodic maintenance of the spooling area.  This script is designed to
  862. be run from cron(1) every day; see faxcron(1M) for detailed information
  863. on its operation.  If you want to do accounting check out the shell
  864. scripts util/xferstats.sh and util/recvstats.sh for a basic attack on
  865. how to process the etc/xferlog accounting file maintained for facsimile
  866. transmissions and receptions (manual pages are also provided).
  867. Otherwise the only matter to be concerned with is the support for data
  868. connections.  If your modems are capable of differentiating data
  869. connections from facsimile connections the fax server can invoke a
  870. getty process and permit incoming data connections.  Alternatively, if
  871. your modem does not support an adaptive answer facility, but it is a
  872. Class 1 modem, the server may be able to do adaptive answering in
  873. software.  In any event, beware that if you enable data connections you
  874. should take the normal precautions you would take when there are dialup
  875. ports on your machine.  Specifically, make sure that you have
  876. passwords, appropriate file protections, and proper configuration of
  877. uucp or similar.
  878.  
  879. If you encounter problems with sending or receiving facsimile you can
  880. enable copious tracing information by editing the configuration
  881. file(s).  Consult the section on Troubleshooting and the config(4F) and
  882. log(4F) manual pages.
  883.  
  884.  
  885. Adaptive-answering Strategies
  886. -----------------------------
  887. If your modem supports a good adaptive answering facility, then it
  888. should be enabled with the ModemSetupAACmd and the server system will
  889. automatically service fax or data calls as appropriate.
  890.  
  891. If your modem does not support adaptive-answering (i.e. distinguishing
  892. data from fax), then you have several options.  In all cases sending
  893. facsimile is supported without problems.  If you have a Class 1 modem,
  894. then you can request that the server employ a simple adaptive answering
  895. strategy whereby incoming calls are first answered as if they are for a
  896. fax machine and, if that fails, then answered as if they are for a data
  897. modem.  This facility is enabled by specifying something like:
  898.  
  899.     AdaptiveAnswer:    yes        # enable adaptive answer
  900.     ModemAnswerCmd:    +FCLASS=1;A    # default is to answer as fax
  901.     ModemAnswerDataCmd:    H+FCLASS=0;A    # hangup and answer as data
  902.     Class1RecvIdentTimer: 10000        # timeout fax answer in 10 secs
  903.  
  904. in the configuration file.   The above lines cause the fax server to do
  905. the following in response to an incoming phone call:
  906.  
  907.     1. Issue "AT+FCLASS=1;A" to answer the phone call in Class 1;
  908.        i.e. as a fax machine (issuing CNG tones).
  909.     2. Send TSI and DIS frames as required by the fax protocol.
  910.     3. Wait for DCS from the caller (if it is a fax machine).
  911.     4. Timeout waiting for DCS in 10 seconds (or whatever is specified
  912.        for Class1RecvIdentTimer).
  913.     5. Issue "ATH+FCLASS=0;A" to hangup and then re-answer the phone
  914.        in Class 0; i.e. as a data modem.
  915.  
  916. This technique assumes many things about the capabilities of the modem
  917. and the local telephony service and may not work for all Class 1 modems
  918. or for all locales.
  919.  
  920. A second facility supported by the fax server in lieu of adaptive
  921. answering is a ``rotary of answering techniques''.  The general idea is
  922. that a list of alternative ways to answer the phone is supplied and the
  923. server will rotate through the list until it finds one that works.  For
  924. example, one might specify something like:
  925.  
  926.     AnswerRotary: "fax data"
  927.  
  928. which would instruct the server to answer incoming calls as if they
  929. were from a fax machine until a call was received from something other
  930. than a fax machine, in which case it would then answer subsequent calls
  931. as a data modem until a non-data call was received (in which case it
  932. would go back to fax).  The rotary list can have up to three items,
  933. with items being selected from one of: fax, data, voice, and any
  934. (answer a call of an unknown type).  The voice answering request is
  935. reserved for future development.  Finally, in conjunction with the
  936. rotary answer facility there is an AnswerBias parameter that can be
  937. used to specify an index into the rotary list to use after
  938. *successfull* calls.  In the above example, this parameter can be used,
  939. to force calls to always be answered first as data by specifying:
  940.  
  941.     AnswerRotary: "fax data"
  942.     AnswerBias:      1
  943.  
  944.  
  945. Non-adaptive-answering Strategies
  946. ---------------------------------
  947. If you want to always process incoming calls as fax connections, then
  948. you do not need to do anything; this is the normal setup.  If you want
  949. to always process incoming calls as data connections, then you should
  950. setup your modem configuration so that the ModemAnswerCmd parameter in
  951. the configuration file causes the phone to be answered strictly as a
  952. data modem.  For example, if you have a Class 1 or Class 2 modem, the
  953. following should do this:
  954.  
  955.     ModemAnswerCmd:    +FCLASS=0;A
  956.  
  957. (this sets the modem into class 0 and then answers the phone).  Another
  958. possibility that you might opt for (especially if your modem is on a
  959. phone line shared with a telephone) is to disable automatic answering
  960. of the phone by setting the RingsBeforeAnswer parameter to zero:
  961.  
  962.     RingsBeforeAnswer:    0
  963.  
  964. and then use the faxanswer program to explicitly request that the fax
  965. server pick up the phone.  Note that by using the -h option to faxanswer
  966. you can control whether the fax server answers a phone call as fax,
  967. or data (answering as voice is also supported for compatibility with
  968. future work).
  969.  
  970.  
  971. Troubleshooting
  972. ---------------
  973. There are several components of this system: client applications
  974. (sendfax, faxstat, faxrm, etc.), the job submission process
  975. (faxd.recv), and the facsimile/modem server (faxd).  If you have
  976. trouble setting up this software, first check out the manual pages.
  977. All client applications support a -v option to enable various levels of
  978. debugging.  It is possible with one or more -v options to trace the
  979. protocol between the application and the faxd.recv process on the
  980. server machine.  faxd.recv has a -d option that enables tracing of the
  981. protocol it receives and its general operation.
  982.  
  983. faxd has many tracing controls described in the config(4F) manual
  984. page.  faxd tracing information is controlled by two configuration
  985. parameters: ServerTracing and SessionTracing.  ServerTracing controls
  986. tracing during the time the server is NOT engaged in conversation with
  987. another fax machine.  SessionTracing controls tracing during the time
  988. the server is engaged in conversation with another fax machine.  Server
  989. tracing information is captured via syslog(3).  This means that to
  990. capture the tracing you must setup the appropriate configuration
  991. information for the syslogd process.  In particular, make sure that you
  992. capture daemon.info, daemon.debug, and daemon.err (or substitute for
  993. daemon to reflect local configuration).  Session tracing is stored
  994. in files in the log subdirectory in the spooling tree.  Consult log(4F)
  995. for more information.  Normal installation of this software will enable
  996. sufficient session tracing to debug communication problems.  Unexpected
  997. problems may require you to alter either or both of the ServerTracing
  998. and SessionTracing parameters.
  999.  
  1000. When tracking down a problem, be sure to work your way from the client
  1001. application through faxd.recv and into the faxd process.  When
  1002. debugging modem-related problems, only enable the tracing that you
  1003. really need.  Enabling all tracing can affect the operation of the
  1004. server by altering the timing of operations.  The default configuration
  1005. files come with SessionTracing set to 11 which is a good setting for
  1006. Class 2 modems (i.e. a lot of information is provided, but the load on
  1007. the server should not keep it from operating properly).  For Class 1
  1008. modems a setting of 0x4f will also cause HDLC frames to be collected.
  1009. Beware of tracing timer operations and modem i/o; these trace flags are
  1010. only useful if you are trying to debug a problem specifically related
  1011. to a timer not going off, or a problem where data appears to be
  1012. corrupted.  Also, when capturing a trace for the purpose of submitting
  1013. a bug report, the less extraneous information that you include, the
  1014. easier it is for people to help understand the problem.  A good way to
  1015. capture a transcript of a problem is to use the transcript shell script
  1016. in the bin directory of the spooling area.  For example,
  1017.  
  1018.     % cd /usr/spool/fax
  1019.     % bin/transcript 2241 14159657824
  1020.  
  1021. where "2241" here is the process id of the faxd process and
  1022. "14159657824" is the canonical phone number associated with the problem
  1023. (i.e. the destination if an outgoing call or the local number if an
  1024. incoming call).  Note that transcript will only present the trace
  1025. associated with the last session, so you need to run it immediately
  1026. after the problem occurs (or else extract the session by hand).
  1027.  
  1028.  
  1029. Mail to Fax Gateway
  1030. -------------------
  1031. It is easy to setup a mail to fax gateway facility with the tools
  1032. included in this distribution and some simple additions to your
  1033. sendmail configuration file (other mailers should hopefully a be
  1034. workable).  Consult the file faxmail/README for directions on a scheme
  1035. that I've used successfully.  Thanks to Eric Allman for the sendmail
  1036. configuration hack.
  1037.  
  1038.  
  1039. Client Setup and Operation
  1040. --------------------------
  1041. FlexFAX basic design is based on a client-server architecture.  A
  1042. single fax server machine with one or more fax modems may service a
  1043. network of client machines that do not have fax modems.  When the
  1044. software is installed from the binary distribution format client
  1045. machines can be setup simply by installing the flexfax.*.client
  1046. images:
  1047.  
  1048.     % inst -f dist/flexfax
  1049.     ...
  1050.     inst> install flexfax.*.client
  1051.     inst> go
  1052.  
  1053. (actually, the default packages to install should be the ones needed to
  1054. setup a client machine).
  1055.  
  1056. When the software is installed from the source distribution format,
  1057. client machines can be setup by packaging the appropriate client pieces
  1058. together with something like tar and then ``dropping the bits'' onto
  1059. the client machine, or by mounting the BIN, LIBDATA, and LIBEXEC
  1060. directories from a system where the software has already been
  1061. installed.  (BIN, LIBDATA, and LIBEXEC refer to locally configured
  1062. pathnames to the directories where binary applications, library data,
  1063. and library executable programs are placed, respectively).  The exact
  1064. set of files provided for a FlexFAX client is specified in the
  1065. flexfax(1) manual page (see the FILES section).
  1066.  
  1067. With the applications and data files accessible on a client machine,
  1068. the only other step required for operation is to setup an entry in the
  1069. /etc/services file or equivalent YP/NIS database for the "fax" service.
  1070. This is automatically done on the server machine by the faxaddmodem
  1071. script using a line of the form:
  1072.  
  1073.     fax     4557/tcp                # FAX transmission service
  1074.  
  1075. Once a client machine is setup for use the server machine may need to
  1076. be configured to permit jobs to be submitted.  Specifically, the file
  1077. etc/hosts in the spooling area on the server machine must be setup to
  1078. permit each client machine access.  Consult the hosts(4F) manual page
  1079. for information on how this is done.
  1080.  
  1081.  
  1082.  
  1083. Contributed Software
  1084. --------------------
  1085. You should be able to find contributions from FlexFAX users in the
  1086. contrib subdirectory of the public ftp area where you found this
  1087. software (or look in sgi/fax/contrib on the host sgi.com).  New
  1088. contributions are welcome, so long as their author's identity is
  1089. clearly marked (so that folks don't ask me questions about stuff
  1090. that I know nothing).
  1091.  
  1092.  
  1093. Acknowledgements
  1094. ----------------
  1095. This software is more than 5 years old and is the product of many
  1096. folks' work.  Robin Schaufler did the original scheme for delayed
  1097. submission and worked on the client-server protocol.  More recently,
  1098. the following people have helped either by testing or by contributing
  1099. fixes and/or improvements:
  1100.  
  1101. Pete Bentley       Marc Boucher        Brent Chapman     Tom Corson
  1102. Alan Crosswell       Greg Ferguson    Steve Fine     Andrew Ford
  1103. Wolfgang Henke       Bert Hooyman        Dirk Husemann     Brian Katzung
  1104. Masao Kitano       Carsten Koch        John T Kohl     Rickard Linck
  1105. Rick Lyons       Tom Lislegaard    Rob MacKinnon     Kevin McManamon
  1106. Les Mikesell       Bill Morrow        Chris Munonye     Jonas Olsson
  1107. Dave Packer       Damon Permezel    David Pike     Amir Plivatsky
  1108. Andy Rabagliati    Eric Rescorla    Marshall Rose     Daniel Rosenblatt
  1109. Joel Rosi-Schwartz Tim Rylance        Brent Townshend     Peter White
  1110. David Vrona       Paul Vixie
  1111.  
  1112. (and surely others).  Also, a special thanks to Ed McCreight for
  1113. helping me understand the stuff "between the lines" that's necessary to
  1114. make a working Class 1 driver.
  1115.  
  1116.  
  1117. FlexFAX Mailing List and Other Final Words (where to send bugs)
  1118. ---------------------------------------------------------------
  1119. There is documentation!  There is GOBS of documentation.  When in doubt
  1120. read the manual pages.  There are manual pages for all the programs and
  1121. manual pages for all the files and directories that you may be curious
  1122. about.  Of course there is also source code for everything, but this
  1123. should (hopefully) not be needed.  A useful introduction to the client
  1124. applications is given in flexfax(1).  If you want to learn how the
  1125. server and spooling system work, look first at intro(4F).
  1126.  
  1127. A mailing list for users of this software is located on sgi.com.
  1128. If you want to join this mailing list or have a list-related request
  1129. such as getting your name removed from it, send your request to
  1130.  
  1131.     majordomo@whizzer.wpd.sgi.com
  1132.  
  1133. For example, to subscribe, send the line "subscribe flexfax" in
  1134. the body of your message.  The line "help" will return a list of
  1135. the commands understood by the mailing list management software.
  1136.  
  1137. Submissions to the mailing list (including bug reports) should be
  1138. directed to:
  1139.  
  1140.     flexfax@sgi.com
  1141.  
  1142. Note that the mailing list has many people on it.  Please take this
  1143. into consideration when posting notes to it; i.e. avoid posting large
  1144. trace logs and the such.  Also, when corresponding about this software
  1145. please always specify:
  1146.  
  1147. - what version you have (see "How to tell which version you have" above),
  1148. - what system you're running on, and,
  1149. - if the problem is modem-related, identify it and the firmware rev
  1150.  
  1151. For example: "FlexFAX v2.2.2alpha99 under Solaris 2.3 with gcc 2.5.7;
  1152. ZyXEL 1496E with 6.11a firmware."
  1153.  
  1154. If you find the flexfax mailing list to have too much traffic for you,
  1155. there is also an announcements-only mailing list called flexfax-announce.
  1156. This can be subscribed in the same way that you subscribe to the
  1157. flexfax mailing list: send "subscribe flexfax-announce" to the
  1158. Majordomo list handler on whizzer.wpd.sgi.com.  Note that there is no
  1159. need to subscribe to both mailing lists; postings to the announcement
  1160. list are automatically fed to the normal flexfax list.
  1161.  
  1162. If you have not previously done so, please fill out the survey form in
  1163. the file SURVEY and post it to flexfax-survey@whizzer.wpd.sgi.com (the
  1164. form is setup as an MH form file to simplify this procedure).
  1165.  
  1166.  
  1167. Use and Copyright
  1168. -----------------
  1169. Silicon Graphics has seen fit to allow me to give this work away.  It
  1170. is free.  There is no support or guarantee of any sort as to its
  1171. operations, correctness, or whatever.  If you do anything useful with
  1172. all or parts of it you need to honor the copyright notices.   I would
  1173. also be interested in knowing about it and, hopefully, be acknowledged.
  1174.  
  1175.     Sam Leffler    (sam@sgi.com)
  1176.  
  1177.  
  1178. InterViews Information (from Mark Linton: linton@sgi.com)
  1179. ---------------------------------------------------------
  1180. InterViews 3.1 is now available via anonymous ftp
  1181. from "interviews.stanford.edu" (IP address 36.22.0.175).
  1182. The distribution is in a compressed tar file named "pub/3.1.tar.Z"
  1183. (about 3.8Mb).  The distribution is also ftp-able from sgi.com
  1184. in "graphics/interviews/3.1.tar.Z".
  1185.  
  1186. The README file in the top-level directory contains information
  1187. about how to build InterViews.  The PostScript file iv/src/man/refman/cover.ps
  1188. contains general information about 3.1, including a brief
  1189. discussion of differences from 3.0.
  1190.  
  1191. Please send problems to interviews-bugs@interviews.stanford.edu.
  1192.  
  1193.       Mark
  1194.  
  1195.  
  1196. TIFF Information (from Sam Leffler: sam@sgi.com)
  1197. ------------------------------------------------
  1198. How To Obtain This Software (in case all you get is this file)
  1199.  
  1200. The software is available for public ftp on
  1201.     sgi.com            graphics/tiff/v3.2beta.tar.Z
  1202.     (192.48.153.1)
  1203.  
  1204. For example,
  1205.     ftp -n sgi.com
  1206.     ....
  1207.     user anonymous
  1208.     ... <type in password>
  1209.     cd graphics/tiff
  1210.     binary
  1211.     get v3.2beta.tar.Z
  1212.  
  1213. The software comes in a compressed tar file.  To extract the
  1214. information:
  1215.     zcat v3.2beta.tar.Z | tar xf -
  1216. (uncompress and extract individual files in current directory).
  1217.  
  1218. The file 3.2.patch in the above ftp directories is a shell
  1219. script that should be applied to the 3.2beta source code.
  1220.  
  1221. There is also a companion compressed tar file, v3.0pics.tar.Z
  1222. that has sample TIFF image files.  These are mostly useful in
  1223. testing the software if/when you port it to an unsupported system.
  1224.  
  1225. TIFF Mailing List
  1226. -----------------
  1227. A mailing list for users of this software is located on sgi.com.
  1228. If you want to join this mailing list or have a list-related request
  1229. such as getting your name removed from it, send a request to
  1230.  
  1231.     majordomo@whizzer.wpd.sgi.com
  1232.  
  1233. For example, to subscribe, send the line "subscribe tiff" in
  1234. the body of your message.  The line "help" will return a list of
  1235. the commands understood by the mailing list management software.
  1236.  
  1237. Submissions (including bug reports) should be directed to:
  1238.  
  1239.     tiff@sgi.com
  1240.  
  1241. When corresponding about this software please always specify what
  1242. version you have, what system you're running on.
  1243.  
  1244.  
  1245.  
  1246. Ghostscript Information
  1247. -----------------------
  1248. Ghostscript and its fonts can be found at many public ftp sites around
  1249. the Internet.  One good location for obtaining the 2.6 version is
  1250. ftp.cs.wisc.edu:/pub/X/ghostscript*2.6*.
  1251.